<?php
namespace V5;
class C_NewProduct extends \V4\C_NewProduct{

    public function get(array $req,array $post,&$result)
    {
        // 验证开始
        if (!isset($req['uid'])) {
            return 'require user id ';
        }
        if (!isset($req['userType'])) {
            return 'require user type';
        }
        if (!isset($req['k']) || !isset($req['t'])) {
            return 'data error';
        }
        if (!isset($req['enterpriseId'])) {
            return 'require enterprise id';
        }
        if (!isset($req['channelId'])) {
            return 'require channel id';
        }
        if (\Biz\UserHandler::checkAuth($req['userType'], $req['uid'], $req['enterpriseId'], $req['t'], $req['k']) == false) {
            return 'data illegal';
        }
        $customer_handler = new \Biz\UserHandler();
        $customer_cls = $customer_handler->getById($req['userType'], $req['uid']);
        if (!is_object($customer_cls) && $customer_cls->getEnterpriseId() == false) {
            return 'data error';
        }
        $channel_id = $customer_cls->getChannelId();
        $enterprise_id = $customer_cls->getEnterpriseId();
        if ($channel_id != $req['channelId']) {    //验证用户渠道
            return 'invalid channel id ';
        }
        if ($enterprise_id != $req['enterpriseId']) {//验证用户企业
            return 'invalid enterprise id ';
        }


        //获取渠道下所有在售产品
        $product_channel_handler = new \Biz\ProductHandler();
        $product_channel_lists = $product_channel_handler->getProductChannelByChannelId($channel_id);
        $fliter_product_ids = array(0);
        foreach ($product_channel_lists as $product) {
            $tmp_product_lists[$product['product_id']]['id'] = $product['product_id'];
            $tmp_product_lists[$product['product_id']]['enterprise_id'] = $product['enterprise_id'];
            $tmp_product_lists[$product['product_id']]['brand_id'] = $product['brand_id'];
            $tmp_product_lists[$product['product_id']]['brandname'] = (string) $product['brand_name'];
            $tmp_product_lists[$product['product_id']]['parent_brand_name'] = is_null($product['parent_brand_name']) ? '' : $product['parent_brand_name'];
            $tmp_product_lists[$product['product_id']]['parent_brand_id'] = is_null($product['parent_brand_id']) ? '' : $product['parent_brand_id'];;
            $tmp_product_lists[$product['product_id']]['name'] = (string) $product['name'];
            $tmp_product_lists[$product['product_id']]['icon_url'] = self::fullImgUrl($product['icon_url']);
            $tmp_product_lists[$product['product_id']]['mass_packing'] = (string) $product['sell_unit_string'];
            $tmp_product_lists[$product['product_id']]['remark'] = (string) $product['remark'];
            $tmp_product_lists[$product['product_id']]['channel_price'] = (string)$product['price'];
            $tmp_product_lists[$product['product_id']]['sort_price'] = (float)$product['price'];
            $fliter_product_ids[] = $product['product_id']; //重新组装待处理的商品id
        }

        $product_sku_list = $product_channel_handler->getOnsaleAttrByProductIdsAndChannelId($fliter_product_ids,$channel_id);// 得到sku信息
        \Biz\Market\Product::handelSkuListPriceByChannelIdAndEnterpriseId($product_sku_list,$channel_id,$enterprise_id); // 根据渠道id批量处理sku价格，与参与活动状态
        $result_product_list = array();
        foreach ($tmp_product_lists as $product_id=>$item) {
            $result_product_list[$product_id] = $item;
            $result_product_list[$product_id]['sales_valume'] = isset($product_sale_valume[$product_id]) ? $product_sale_valume[$product_id] : 0;
            $result_product_list[$product_id]['sku_info'] = isset($product_sku_list[$product_id]) ? $product_sku_list[$product_id] : array();

            if (isset($product_sku_list[$product_id][0]['join_market_type'])){
                $result_product_list[$product_id]['activity_info'] = array(array('id'=>1)); // 只需标记参与活动即可
            } else {
                $result_product_list[$product_id]['activity_info'] = array();
            }
        }

        $result_product_list = array_values($result_product_list);
        $all_product_list = self::sortById($result_product_list);

        // 加载 20 条最新数据
        $result['product_list'] = array_slice($all_product_list,0,20);
    }

    /**
     * 补全图片信息
     * @param $icon_url
     * @return string
     */
    protected static function fullImgUrl($icon_url)
    {
        $image_domain = 'http://image.freshqiao.com';
        $image_url = $icon_url == '/' ? $image_domain . $icon_url : $image_domain . '/' . $icon_url;
        return $image_url;
    }

    /**
     *  // 按brand升序排序
     * @param $product_list
     * @return mixed
     */
    protected static function sortById($product_list)
    {
        $ids = array();
        foreach ($product_list as $product) {
            $ids[] = $product['sales_valume'];
        }
        array_multisort($ids, SORT_ASC, $product_list);
        return $product_list;
    }
}